iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
SideProject30

Hugo your Blog and Host your Podcast. 系列 第 23

JSON init/ Prepare well for Lambda.

  • 分享至 

  • xImage
  •  

前後端的共同語言

  • 同樣的,我們不一希望每次都寫醜醜的 feed.rss 檔案,而是希望能夠用更有結構性的東東來編輯資料,並可以直接產生 feed.rss 檔案
  • 我們當然可以架起一個本機的資料庫進行編輯,不論是 MySQL 或 MongoDB 都是很好的選擇,只是啟動成本太高(就算可以把安裝、語法、資料結構分成好幾天寫,但這樣偷懶太多)
  • 這時候就可以偷懶一點點就好,使用 JSON 來做為資料的儲存格式(後面再作一支 Lambda 去產生新的 feed.rss

該怎麼做

  • 上次 Day15 已經仔細觀察過別人家的 RSS,並手刻過自己的 RSS Feed
  • 這此我們把需要調整的資料摘出來,結構化成 JSON 格式
  • JSON 簡單說就是用 {} 包起來,每個欄位都需要 "" 包起來的資料型態
{
  "podcast": {
    "lastBuildDate": "",
    "title": "",
    "description": "",
    "image": {
      "url": "",
      "title": "",
      "link": ""
    },
    "link": "",
    "author": "",
    "copyright": "",
    "email": "",
    "language": "",
    "type": "episodic",
    "category_main": "",
    "category_sub": "",
    "explicit": false,
    "episodes": [
      {
        "title": "",
        "description": "",
        "link": "",
        "audio": "",
        "creator": "",
        "explicit": false,
        "duration": "",
        "image": "",
        "episode": 1,
        "type": "full"
      },
      {
        "title": "",
        "description": "",
        "link": "",
        "audio": "",
        "creator": "",
        "explicit": false,
        "duration": "",
        "image": "",
        "episode": 2,
        "type": "full"
      }
    ]
  }
}
  • 大概是這個樣子,每次新增一個單集,就是在 episodes 陣列中新增一個物件,並且把相關資訊填入,再修改 lastBuildDate 就可以了
  • 其他的事情就交給明天再煩惱吧~ Lambda 會幫助你我的。

其他延伸

  • MySQL 在 8.0 之後,已經可以直接使用 JSON 來儲存資料,並且可以直接查詢,這樣就可以直接使用 SQL 語法來查詢資料,非常方便(JSON_EXTRACT...),不過效能可能差一點
  • 也有專屬於 JSON 的 Query 語言喔,就是 JMESPATH,在使用 AWS CLI 進行一些搜尋或過濾時,就可能會用到的個東東
  • 其實這篇除了是給 Lambda 鋪路,主要是想介紹 JMESPATH 這個可能很少用但酷酷的東西而已
  • JMESPATH 還有 filter 的語法,可以像是 SQL 一樣過濾出想要的資料喔
  • 更根本的原因是整天都在轉機,加上飛機延誤,正在等待從阿姆斯特丹飛往香港的航班,希望能一路睡到家

外出取材

  • 傳說在愛丁堡犯人行刑前,可以到 The Last Drop 去享用人生的最後一杯佳釀再安心上路,然而,最後一晚進去,裡頭人滿為患,大家都很享受,不問生死。
    https://ithelp.ithome.com.tw/upload/images/20231008/20152944NTigufJ16N.jpg

上一篇
AWS Lambda / Lambda is your severless solution.
下一篇
RSS Validator / Just one more check.
系列文
Hugo your Blog and Host your Podcast. 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言